--POUR CONTROLE


define erp='erp_mli2.';
define outils='outils_mli2.';

--CREATE TABLE se_ach_corresp_four AS (SELECT * FROM &erp.ach_corresp_four WHERE 1=2);



DELETE FROM se_ach_corresp_four;

 INSERT INTO se_ach_corresp_four
 (SELECT f.corresp corresp_four_cod,
         0 adresse_id,
         NULL fonction_cod,
         0 enreg_id,
         SubStr(fa.nom || Nvl2(cp,' ' || fa.cp,'') || Nvl2(fa.bd,' ' || fa.bd,'') || Nvl2(fa.rue,' ' || fa.rue,'') || Nvl2(fa.compadr,' ' || fa.compadr,''),1,80) aff_nom,
         f.id fournisseur_cod,
         (rangmulti2+1) corresp_four_rang,
         'N' enreg_s
    FROM uv_pfournisseurs_corresp f, uv_padresses fa
    WHERE f.corresp IS NOT NULL
      AND fa.id=f.id || f.corresp) ;

 UPDATE se_ach_corresp_four tf SET (enreg_id,adresse_id)=(select enreg_id,adresse_id FROM &erp.ach_corresp_four f WHERE f.corresp_four_rang=tf.corresp_four_rang AND f.fournisseur_cod=tf.fournisseur_cod) ;
 UPDATE se_ach_corresp_four tf SET enreg_id=&outils.enreg_id.NEXTVAL WHERE enreg_id IS NULL OR enreg_id =0;
 UPDATE se_ach_corresp_four tf SET adresse_id=&outils.gen_adresse.NEXTVAL WHERE adresse_id IS NULL OR adresse_id =0;






DELETE FROM  se_gen_adresse ;

INSERT INTO se_gen_adresse
 (SELECT (SELECT adresse_id FROM se_ach_corresp_four s WHERE s.fournisseur_cod=f.ID AND s.corresp_four_cod=f.corresp) adresse_id,
    NULL strucjur_cod,
    null traduction_cod,
    NULL expedzone_cod,
    0 enreg_id,
    pays pays_cod,
    null departement_cod,
    NULL region_cod,
    'M.' prefnom_cod,
    nom nom,
    null nom2,
    rue adr1,
    compadr adr2,
    NULL adr3,
    NULL bp,
    cp cpostal_cod,
    bd ville_cod,
    telephone tel1,
    NULL tel2,
    telecopie fax1,
    NULL fax2,
    null telmobile1,
    NULL telmobile2,
    NULL email,
    NULL siteweb,
    NULL contact_nom,
    NULL tvacee_no,
    NULL siret_no,
    NULL ape_no,
    NULL gln_no,
    NULL cnuf_no,
    NULL rc_no,
    NULL villerc_lib,
    NULL capital,
    NULL logoachat_lib,
    NULL creatsoc_dat,
    NULL envoi_typ,
    NULL villeinsee_cod,
    NULL ediadr_no
    FROM uv_pfournisseurs_corresp f, uv_padresses fa
    WHERE f.corresp IS NOT NULL
      AND fa.id=f.id || f.corresp
      ) ;

 UPDATE se_gen_adresse tf
 SET enreg_id = (select enreg_id FROM &erp.gen_adresse f WHERE f.adresse_id=tf.adresse_id )
 WHERE EXISTS (SELECT 1 FROM &erp.gen_adresse f WHERE f.adresse_id=tf.adresse_id);

 UPDATE se_gen_adresse SET enreg_id=&outils.enreg_id.NEXTVAL WHERE enreg_id IS NULL OR enreg_id =0;

 CALL uvse_synchroverserp('adresse_id','GEN_ADRESSE','O') ;

 CALL uvse_synchroverserp('fournisseur_cod@corresp_four_rang','ACH_CORRESP_FOUR','O') ;

 commit;
 
 select * from (
SELECT &outils.stragg(source) source,corresp_four_cod, adresse_id, fonction_cod, enreg_id, aff_nom, fournisseur_cod, corresp_four_rang, enreg_s
FROM (
  SELECT 'uv' source ,g.* FROM se_ach_corresp_four g
  UNION ALL
  SELECT 'se' source ,g.* FROM &erp.ach_corresp_four g
  )
GROUP BY corresp_four_cod, adresse_id, fonction_cod, enreg_id, aff_nom, fournisseur_cod, corresp_four_rang, enreg_s
HAVING Count(1)!=2) r
ORDER BY fournisseur_cod,corresp_four_cod;

